package cn.dac.entity.security;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
public class SysUser implements Serializable {
    private static final long serialVersionUID = -6252784647718273355L;

    private String id;
    private String loginName;//帐号
    private String userName;//名称（昵称或者真实姓名，不同系统不同定义）
    private String password; //密码;
    private String salt;//加密密码的盐
    private Integer status;//用户状态,0:创建未认证（比如没有激活，没有输入验证码等等）--等待验证的用户 , 1:正常状态,2：用户被锁定.
    private Integer userType;
    private Integer organizationId;
    private String phone;
    private Integer age;
    private Integer sex;
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date loginTime;//最后登录时间

    private List<SysRole> roles;// 一个用户具有多个角色
    private List<SysGroup> groups;//一个用户多个组




    /**
     * 重新对盐重新进行了定义，用户名+salt，这样就更加不容易被破解
     * 密码盐.
     * @return
     */
    public String getCredentialsSalt(){
        return this.loginName+this.salt;
    }
}
